package it.polimi.politics.web.beans;
 
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.CloseEvent;
import org.primefaces.event.ToggleEvent;

import it.polimi.politics.dto.PartitoDTO;
import it.polimi.politics.dto.UtentiDTO;
import it.polimi.politics.managers.PartitoManager;
import it.polimi.politics.managers.UserManager;
 
@ManagedBean(name = "partitiBean")
@ViewScoped
public class PartitiBean {
     
	@EJB
	private PartitoManager partitoMgr;
	
	@EJB
	private UserManager userMgr;
	
	private List<String> 	 lista;
	private List<UtentiDTO>  listaUtenti;
	private List<PartitoDTO> partiti;
	private PartitoDTO 		 partito;
	 
	
    
	@PostConstruct
    public void init() {
        
		
		
		lista = partitoMgr.getAllNomePartito();
		setPartiti(partitoMgr.getAllPartiti());
    }
	
	public List<UtentiDTO> getPoliticiPartito(int idPartito) {
		
		List<UtentiDTO> utenti = new ArrayList<UtentiDTO>();
		utenti = userMgr.trovaPoliticiPartito(idPartito);
		
		return utenti;
	}
	
	
	
	public PartitoDTO getPartito(int idPartito){
		trovaPartito(idPartito);
		return partito;
	}
    
	public void trovaPartito(int idPartito){
		setPartito(partitoMgr.getPartitoDTO(idPartito));
		
	}
	
	public String getProgramma(int idPartito){
		trovaPartito(idPartito);
		return partito.getProgramma();
	}
	
	public String getNomePartito(int idPartito){
		trovaPartito(idPartito);
		return partito.getNome();
	}
	
	public byte[] getLogo(int idPartito){
		trovaPartito(idPartito);
		return partito.getLogo();
	}
  


	public List<String> getLista() {
		return lista;
	}

	public void setLista(List<String> lista) {
		this.lista = lista;
	}




	public List<PartitoDTO> getPartiti() {
		
		return partiti;
	}




	public void setPartiti(List<PartitoDTO> partiti) {
		this.partiti = partiti;
	}
     
	public PartitoDTO getPartito() {
		return partito;
	}

	public void setPartito(PartitoDTO partito) {
		this.partito = partito;
	}
	

	public List<UtentiDTO> getListaUtenti() {
		return listaUtenti;
	}



	public void setListaUtenti(List<UtentiDTO> listaUtenti) {
		this.listaUtenti = listaUtenti;
	}

	    public List<UtentiDTO> getUtentiPartito(){
	    	String idpartito = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
	    	int id = Integer.parseInt(idpartito);
			setListaUtenti(partitoMgr.getUtentiPartito(id));
	    	return listaUtenti;
	    }
	    
	 
	 
	   
	    
	   
	}
  
	
	
	
  
